package jeu;

/**
 * Created by IntelliJ IDEA.
 * User: cvermot2
 * Date: 1 mars 2010
 * Time: 10:31:23
 * To change this template use File | Settings | File Templates.
 */
public class Grille {
    private int[] grille;

    
    public Grille(){
        grille = new int[12];
        for(int i = 0 ; i < 12 ; i++)
            grille[i] = 4;
    }


    /*
    public Grille(){
        grille = new int[12];
        grille[0] = 1 ;
        grille[1] = 1 ;
        grille[2] = 2 ;
        grille[3] = 0 ;
        grille[4] = 0 ;
        grille[5] = 1 ;
        grille[6] = 3 ;
        grille[7] = 1 ;
        grille[8] = 1 ;
        grille[9] = 0 ;
        grille[10] = 0 ;
        grille[11] = 3 ;

    }   */
    

    public int getValueAtPosition(int pos){
        if(pos>=12)
            pos = pos%12;
        return grille[pos];
    }

    /*
     * Met une valeur "value" à la position "pos" pouvant etre supérieur à 12 
     */

    public void setValueAtPosition(int value, int pos){
        if(pos>=12)
            pos = pos%12;
        grille[pos] = value;
    }


    /*
     * Fonction qui donne la position de la derniere graine qui sera distribué
     */
    public int getFinalPosition(int pos){
        int val = getValueAtPosition(pos);
        int compensation  = val/12 ;
        int res = (pos + val)%12 ;
        return (pos+val+compensation)%12;
        // 1 + 14 % 12 + 1 
    }


    /*
     * Fonction d'affichage de la grille
     */
    public void viewGrille(){ 
        System.out.println("  Joueur 1");
        System.out.println("+-+-+-+-+-+-+");
        for(int i = 0 ; i < 6 ; i++){
        	System.out.print("|" + grille[i]);
        }
        System.out.println("|");
        System.out.println("+-+-+-+-+-+-+");
        for(int i = 11 ; i >= 6 ; i--){
        	System.out.print("|" + grille[i]);
        }
        System.out.println("|");
        System.out.println("+-+-+-+-+-+-+");
        System.out.println("  Joueur 2");
        
    }


    /*
     * Fonction de clonage de la grille, utile pour les test pour savoir si un joueur est affamé.
     */
    public void cloneGrille(Grille grid){
        for(int i =0 ; i < 12 ; i++){
            grille[i] = grid.getValueAtPosition(i);
        }
    }


    /*
     * Parcours tout le plateau d'un joueur, et verifie s'il n'est pas affamé (cad qu'il n'a plus du tout de graines)
     */
    public boolean affamer(int min, int max){
        boolean affam = true ;
        for(int i = min ; i < max ; i++){
            if(this.grille[i] != 0){
                affam = false ;
            }
        }
        return affam ;
    }

    /*
     * Retourne le nombre total de graines restants sur le plateau
     */
    public int getGrainesPlateau(){
        int total = 0 ;
        for(int i = 0 ; i < 12 ; i++){
            total += grille[i] ;
        }
        return total ;
    }
}
